sql - GROUP BY 和 ORDER BY
全部标签 按照function我已经写了它接受xml并返回table作为结果。CREATEFUNCTIONFunctionTest(@IDINT,@XML_Detailsxml)RETURNS@RESULTTABLE(Value1INT,Value2INT)ASBEGINDECLARE@tbl_Xml_ResultTable(Value1INT,Value2INT)INSERTINTO@RESULT(Value1,Value2)SELECTl.v.value('Value2[1]','INT'),l.v.value('Value1[1]','INT')FROM@XML_Details.nodes
我想使用tsql从xml文件中获取ChargeType的值。我写了脚本,但它总是为两个xml记录返回值“Principal”。我不明白哪里出了问题以及如何解决问题?脚本应返回值:ChargeTypePrincipalTaxed当前结果ChargeTypePrincipalPrincipal源代码DECLARE@xmlXML='Principal20.4RURTaxed1.23GEL';;WITHXMLNAMESPACES('http://www.test.com'asns)selectlfer.c.value('(//ns:ChargeType)[1]','nvarchar(50)')
我必须提取电子邮件Subject来自XML存储为nvarchar.我正在使用这个查询:SELECTrtrim((SELECTCAST(SUBSTRING([XML],patindex('%%',[XML]),patindex('%%',[XML])-patindex('%%',[XML])+len(''))asXML).value('(/SUBJECT/OPTION)[1]','nvarchar(2000)')FROMdbo.Mails))asSUBJECT此查询首先提取包含电子邮件主题(....)的字符串,我将其转换为XML,然后使用value获取主题值XML函数。这工作正常,但在某
我有下一个XML:SET@MyXML='FranceParisEnglandLondonSpainMadrid'我需要以这种方式从这个XML中获取数据-我设置了参数“England”并获取“London”。接下来是我的代码,但它不起作用:SELECTTab.Col.query('p/.[(Val)[1]castasxs:string?="England"]')AS[Capital]FROM@MyXML.nodes('//pairs')Tab(Col)我想念什么?谢谢! 最佳答案 您的XQuery对象构造不正确。这将得到其中有作为"E
我正在使用MicrosoftSQL服务器。我有一个简单的层次结构,如Xml中的方向图:DECLARE@XMLasXML=CAST('23413'ASXML);我想要的输出是这样的表格:SOURCE_NODE_ID|DEST_NODE_ID1|21|31|42|12|3这样的查询:SELECTB.value('data(@NODE_ID)','int')ASSOURCE_NODE_ID,A.B.value('(EDGE/text())[1]','int')ASDEST_NODE_IDFROM@XML.nodes('/ROOT/NODE')ASA(B);只返回第一条边:SOURCE_NOD
我正在解析一个xml输入,使用xQuery这有助于在存储过程中解析xml文件,如here,然后将它们插入到表中。我能够将XML中的值正确插入表中。但是,我想插入一个新创建的UUID列作为我进行插入的表的第一列,只有其余列的值需要来自XML。由于xQuery批量插入,我创建了一个包含UUID的临时表,并尝试将其与从XML解析的其余值一起插入。但是,它给了我一个错误。--SPCREATEPROCEDUREdbo.ParseXML@XMLXMLASBEGINDECLARE@applicationIdNVARCHAR(36);DECLARE@dashboardcountINT;DECLARE@
我有一个具有以下结构的表StreetNumbervarchar(50)Apartmentvarchar(50)Floorvarchar(50)我想像这样将数据转换为XML:312有什么方法可以将每一列转换为具有相同名称且仅与属性ID不同的元素? 最佳答案 您可以在列列表的子查询中创建XML,您可以在其中对表构造函数中的值进行逆透视,为每列提供一个ID。这是一个使用表变量作为数据源的示例。你当然应该改用你的table。declare@Ttable(StreetNumbervarchar(50),Apartmentvarchar(5
我正在努力了解SQL、XML节点和交叉应用,我原以为以下代码会返回3行数据,但我只得到了一个。我原以为使用Crossapply将查询连接回自身可以为我解决这个问题。有人可以告诉我我做错了什么吗?提前致谢丹DECLARE@XMLASXML;SELECT@XML=('mefile1.docfile2.pdffile3.xcl')selectt.n.value('@deal_id','int')as[ID],f.n.value('(File)[1]','varchar(50)')as[FILENAME]from@XML.nodes('Deal')t(n)crossapplyt.n.nodes
我正在使用以下代码将所有结果连接成一条记录(以回车符分隔)SELECT[ConcactColumn]=STUFF((SELECTCHAR(10)+t.columnFROM#tabletFORXMLPATH('')),1,1,'')唯一的问题是,当我需要容纳至少5,000,000个字符时,我无法得到超过43,720个字符的结果。我怎样才能做到这一点?提前谢谢你。 最佳答案 SSMS中字符串的大小是有限制的。但是XML的大小不是右击进入查询窗口选项网格中的结果将XML设置为“umlimited”然后试试这个:SELECTSTUFF((S
我正在尝试找出如何提取嵌套的XML元素并将其转换为SQL中的表结果。一个WorkItem总是有一个组,但是组字段可以嵌套N次。有没有一种简单的方法可以将字段从XML字段中提取出来,如下所示:declare@xmlXML=''declare@handleintdeclare@statusintexec@status=sp_xml_preparedocument@handleoutput,@xmlselect*fromopenxml(@handle,'WorkItem/Group/Field')with(FieldIdint,Namevarchar(max))execsp_xml_remo